<script>
	import {
		mapMutations
	} from "vuex"
	export default {
		onLaunch: function() {
			let token = uni.getStorageSync('token')
			let userInfo = uni.getStorageSync('userInfo')
			let store = uni.getStorageSync('store')
			if (token) {
				this.login({
					token: {
						token: token
					},
					store: store,
				}) // 更新登录状态， 保持登录状态
				this.setUserInfo(userInfo)
			} else {
				uni.reLaunch({
					url: '/pages/login/login'
				})
			}
			this.autoUpdate();
		},
		//app.vue
		onShow: function() {
			console.log('App Show');
			// 检测小程序更新，提示用户更新
		},
		onHide: function() {
			console.log('App Hide')
		},
		methods: {
			...mapMutations(['login', 'setUserInfo']),
			//微信小程序检测更新措施，方式更新功能后，要等待24小时内才刷新的问题。
			autoUpdate() {
				const self = this
				// 获取小程序更新机制兼容
				if (wx.canIUse('getUpdateManager')) {
					//console.log("进入小程序自动更新检测");
					const updateManager = wx.getUpdateManager()
					//1. 检查小程序是否有新版本发布
					updateManager.onCheckForUpdate(function(res) {
						//console.log("进入小程序检测是否需要自动更新");
						// 请求完新版本信息的回调
						if (res.hasUpdate) {
							//检测到新版本，需要更新，给出提示
							wx.showModal({
								title: '更新提示',
								content: '检测到新版本，是否下载新版本并重启小程序？',
								success: function(res) {
									if (res.confirm) {
										//2. 用户确定下载更新小程序，小程序下载及更新静默进行
										self.downLoadAndUpdate(updateManager)
									} else if (res.cancel) {
										//用户点击取消按钮，需要强制更新，二次弹窗
										wx.showModal({
											title: '温馨提示~',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
											showCancel: false,
											confirmText: "确定更新",
											success: function(res) {
												if (res.confirm) {
													//下载新版本，并重新应用
													self.downLoadAndUpdate(updateManager)
												}
											}
										})
									}
								}
							})
						}
					})
				} else {
					// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
					wx.showModal({
						title: '提示',
						content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
					})
				}
			},
			downLoadAndUpdate(updateManager) {
				const self = this
				wx.showLoading();
				//静默下载更新小程序新版本
				updateManager.onUpdateReady(function() {
					wx.hideLoading()
					//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate()
				})
				updateManager.onUpdateFailed(function() {
					// 新的版本下载失败
					wx.showModal({
						title: '已经有新版本了哟~',
						content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
					})
				})
			}
		}
	}
</script>

<style lang="scss">
	/*每个页面公共css */
	@import "@/static/iconfont.css";
	@import "@/uni_modules/uview-ui/index.scss";
	@import "@/static/css/flex.css";
	@import "@/static/css/contentmixin.scss";
</style>